4.9 そのほかの型を表す概念
可変(ミュータブル)と不変(イミュータブル)
定義後に値を変更できる/できない
コンテナオブジェクト
ほかのオブジェクトへの参照を持つオブジェクト
例:リスト、辞書、集合
コンテナオブジェクトはイテラブル
(__iter__の実装による。3.3.7. コンテナをエミュレートする)
シーケンスオブジェクト
インデックスによる要素アクセスができるコンテナオブジェクト
Python用語集 シーケンス
マッピングオブジェクト
キーによる要素アクセスができるコンテナオブジェクト
イテラブルなオブジェクト
__iter__を実装したオブジェクト
for文
__iter__を呼び出し、イテレータを取得
https://docs.python.org/ja/3/reference/datamodel.html#object.__iter__
イテレータの__next__を呼び出して、要素を1つずつ取得できる
https://docs.python.org/ja/3/library/stdtypes.html#iterator.__next__
呼び出し可能オブジェクト
__call__を実装したオブジェクト
関数でもクラスでもインスタンスでも()を付けて呼び出すようにできる(ダックタイピング)
👉3.3.6. 呼び出し可能オブジェクトをエミュレートする
コンテナ・イテラブル・呼び出し可能オブジェクトの実装は8.2 特殊メソッド